<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .container{
            width: 600px;
            height: 400px;
            border: 10px solid #333;
            margin: 30px auto;
            display: flex;
            flex-direction: column;
        }
        .header{
            height: 40px;
            display: flex;
            line-height: 40px;
        }
        .header div{
            flex: 1;
            background-color: hotpink; 
            text-align: center;
            font-size: 36px;
            color: white;
        }
        .header .active{
            background-color: orange;
        }
        .content{display: none;}
    </style>
</head>
<body>
    <div class="container">
        <div class="header">
            <div class="active" data-index="1">热卖</div>
            <div data-index="2">精品</div>
            <div data-index="3">推荐</div>
        </div>
        <div class="body">
            <div class="content" style="display: block;">1</div>
            <div class="content">2</div>
            <div class="content">3</div>
        </div>

    </div>
</body>
</html>

<script>
    /*
        实现思路
        为每一个选项卡绑定点击事件
            1、实现控制当前点击的选项卡背景颜色特殊 其他的没有
               a)其他的选项卡移除active样式 
               b)需要将当前的点击的元素添加active样式
            2、实现控制点击的选项卡对应的内容显示
                a)将其他的content隐藏
                b)将当前点击的选项卡对应的content 显示  为了能够与选项卡对应起来  header中每一个div都添加一个data-index属性记录当前是第几个选项卡    
    */
    //    headers 是一个伪数组 每一个元素代表 每一个选项卡div的dom对象
    var headers = document.querySelectorAll('.header>div');
    var contents = document.querySelectorAll('.content');
    // 1、实现了循环为每一个选项卡div绑定点击事件
    for(var i =0;i<headers.length;i++){
        headers[i].onclick = function(){
            // 2、移除active
            // 因为目前不知道active样式在哪一个选项卡的div上，直接将所有的 选项卡的样式移除
            // for(var j = 0;j<headers.length;j++){
            //     headers[j].removeAttribute('class')
            // }
            // 简单写法  
            document.querySelector('.header>.active').removeAttribute('class')
            // 3、当前点击的添加active
            this.className = 'active';
            // 4、将所有的content 隐藏起来
            for(var k = 0;k<contents.length;k++){
                contents[k].style.display = 'none';
            }
            // 5、将当前点击的选项卡对应的content显示
            var index = this.getAttribute('data-index');//获取当前点击的序号
            contents[index-1].style.display = 'block'
        }
    }
</script>
    
</body>
</html>